//
// This file contains the declarations of objects used along in the game.
// Monster, player and a few other class definitions go here for elaboration
// in creatures.cpp.
// 
//   This file is part of Linux Legends.
//
//   Linux Legends is free software: you can redistribute it and/or modify
//   it under the terms of the GNU General Public License as published by
//   the Free Software Foundation, either version 3 of the License, or
//   (at your option) any later version.
//
//   This program is distributed in the hope that it will be useful,
//   but WITHOUT ANY WARRANTY; without even the implied warranty of
//   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
//   GNU General Public License for more details.
//
//   You should have received a copy of the GNU General Public License
//   along with this program.  If not, see <http://www.gnu.org/licenses/>.
//

#include <iostream>
#include <string>

#ifndef CREATURES_H
#define CREATURES_H

class Creature {
public:
    Creature(int atk, int hp, int def, int xp);
    int attack();
    bool is_dead();

protected:
    int max_attack;
    int health;
    int defense;
    int experience;

};

class Monster : public Creature {
public:
    Monster(int atk, int hp, int def, int xp, std::string nm);
    void defend(int incoming);
    int yield_xp();

private:
    std::string name;
};

class Player : public Creature {
public:
    Player(int atk, int hp, int def, int xp, std::string eq);
    void defend(int incoming);
    void get_xp(int xp);

private:
    std::string weapon;

};

#endif
